New hardware and software technology, as well as increased availability of broadband, are all leading to increased data traffic across networks and the Internet. Instead of accessing simple, text-based web pages, users are employing data intensive applications. Internet users are viewing video content offered by news organizations, streaming high-quality audio from Internet radio stations, and sharing live audio and video over peer-to-peer networks. These applications, and particularly real-time video applications, rely on a continuous connection having sufficient and consistent bandwidth, even though different users may have disparate data rates available to them. This preventing the content provider (e.g., a peer or a web page server) from using a one-size-fits-all approach. A dial-up modem user may have a 56 kbps connection, while a cable modem user may have almost ten times the bandwidth with a 512 kbps connection.
Content servers have typically dealt with this in the past by requiring users to input the speed of their connection prior to sending the data. The content provider could then tailor the data it sends based on the speed chosen by the user. If the user indicated a 56 k connection, then a lower quality video presentation would be sent at a lower data rate, whereas if the user indicated a broadband connection, then a higher quality presentation would be sent at a higher data rate. A number of popular media players give users the ability to select the speed of their connection, which is then communicated to any software application that attempts to access the player.
In peer-to-peer communication, this discrepancy is often dealt with by agreeing to a fixed data rate at the beginning of a communications session. For example, conventional video conferencing devices often agree to a particular fixed data rate at the beginning of a video conferencing connection. Often, this data rate will be the lowest common denominator of the various peers involved in the video conference.
The inventors have found that requiring the data rate to be fixed up front is in many cases inflexible and inefficient. The wrong speed may be selected. Or, the available bandwidth (such as the bandwidth provided by an intervening network) may vary during the communications session. Variable available bandwidth may be caused by noise or network problems. If the fixed transmit data rate is continued after the available bandwidth has decreased, it is likely that the data will be subject to errors and excessive latency by the time it reaches the destination, if ever. Especially in the case of live video transmissions, video data that is delayed en route to the receiving party may be considered outdated and thrown out.